1 创建服务器
//todo django commands
1.1 python manage.py runserver
manage.py 设置DJANGO_SETTINGS_MODULE环境变量为当前项目的settings.py,然后通过django.core.management.execute_from_command_line 继续执行命令(此处为runserver及其相关参数)
django-admin commands使用django命令行的方式,执行django.core.management.commands.runserver, 执行该模块下的Command类的handle方法,通过django.core.servers.basehttp.get_internal_wsgi_application 方法获取一个处理类的名称,这里获取到的是项目setting.py中的WSGI_APPLICATION 配置,一般是项目目录下wsgi.py 里面定义的application,配置为xxx.wsgi.application.wsgi.py中定义的application为django.core.wsgi.get_wsgi_application返回的django.core.handlers.wsgi.WSGIHandler的实例。最后通过调用django.core.servers.basehttp.run方法创建并启动http服务器,并启用监听。
请求到达后,会调用django.core.handlers.wsgi.WSGIHandler的实例
2 参考
- wsgiref 源代码分析
- WSGI 简介
- Wsgi研究
- Django 结构及处理流程分析
- Django源码分析–引导
- Django中的request和response
- Django 结构及处理流程分析
- Django运行方式及处理流程总结
- How to write a web framework in Python
- Why so many Python web frameworks
- 用Python写一个简单的Web框架
- Django 结构及处理流程分析
- Django运行方式及处理流程总结
- Python与Django篇
- Django运行方式及处理流程总结(xianglong.me)
- Django运行方式及处理流程总结
- Django 结构及处理流程分析
最后更新: 2022年03月02日 03:32
原始链接: http://rawbin-.github.io/framework/2015-03-05-django-request-source/